package structs
import (
	"time"
	"gitee.com/chunanyong/zorm"
)

//TbOperationLogStructTableName 表名常量,方便直接调用
const TbOperationLogStructTableName = "tb_operation_log"

// TbOperationLogStruct 
type TbOperationLogStruct struct {
	//引入默认的struct,隔离IEntityStruct的方法改动
	zorm.EntityStruct
	
    //Id 主键id
    Id int `column:"id"`
    
    //OptModule 操作模块
    OptModule string `column:"opt_module"`
    
    //OptType 操作类型
    OptType string `column:"opt_type"`
    
    //OptUrl 操作url
    OptUrl string `column:"opt_url"`
    
    //OptMethod 操作方法
    OptMethod string `column:"opt_method"`
    
    //OptDesc 操作描述
    OptDesc string `column:"opt_desc"`
    
    //RequestParam 请求参数
    RequestParam string `column:"request_param"`
    
    //RequestMethod 请求方式
    RequestMethod string `column:"request_method"`
    
    //ResponseData 返回数据
    ResponseData string `column:"response_data"`
    
    //UserId 用户id
    UserId int `column:"user_id"`
    
    //Nickname 用户昵称
    Nickname string `column:"nickname"`
    
    //IpAddress 操作ip
    IpAddress string `column:"ip_address"`
    
    //IpSource 操作地址
    IpSource string `column:"ip_source"`
    
    //CreateTime 创建时间
    CreateTime time.Time `column:"create_time"`
    
    //UpdateTime 更新时间
    UpdateTime time.Time `column:"update_time"`
    
	//------------------数据库字段结束,自定义字段写在下面---------------//
    //如果查询的字段在column tag中没有找到,就会根据名称(不区分大小写,支持 _ 转驼峰)映射到struct的属性上
}


//GetTableName 获取表名称
//IEntityStruct 接口的方法,实体类需要实现!!!
func (entity *TbOperationLogStruct) GetTableName() string {
	return TbOperationLogStructTableName
}

//GetPKColumnName 获取数据库表的主键字段名称.因为要兼容Map,只能是数据库的字段名称
//不支持联合主键,变通认为无主键,业务控制实现(艰难取舍)
//如果没有主键,也需要实现这个方法, return "" 即可
//IEntityStruct 接口的方法,实体类需要实现!!!
func (entity *TbOperationLogStruct) GetPKColumnName() string {
	//如果没有主键
	//return ""
	return "id"
}